package com.lantian.uavmaterial.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.lantian.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.lantian.common.annotation.Excel;

/**
 * 无人机基础信息对象 uav_technical_specifications
 * 
 * @author lantian
 * @date 2025-11-06
 */
@Data
@ApiModel(description= "人员实体类")
public class UavTechnicalSpecifications extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 无人机主键 */
    @ApiModelProperty(value = "无人机主键",required = true)
    private String uavId;

    /** 机身结构关联字段 */
    @Excel(name = "机身结构关联字段")
    private String airframeStructureId;

    /** 动力系统关联字段 */
    @Excel(name = "动力系统关联字段")
    private String flightPowerSystemId;

    /** 飞控系统关联字段 */
    @Excel(name = "飞控系统关联字段")
    private String flightControlId;

    /** 电池关联字段 */
    @Excel(name = "电池关联字段")
    private String uavBatteryId;

    /** 通信与数传关联字段 */
    @Excel(name = "通信与数传关联字段")
    private String uavCommunicationAndDataTransmissionId;

    /** 任务载荷_云台和相机 */
    @Excel(name = "任务载荷_云台和相机")
    private String payloadCameraId;

    /** 预留机身零部件关联字段扩展属性1 */
    @Excel(name = "预留机身零部件关联字段扩展属性1")
    private String reservedAttributes1;

    /** 预留机身零部件关联字段扩展属性2 */
    @Excel(name = "预留机身零部件关联字段扩展属性2")
    private String reservedAttributes2;

    /** 预留机身零部件关联字段扩展属性3 */
    @Excel(name = "预留机身零部件关联字段扩展属性3")
    private String reservedAttributes3;

    /** 预留机身零部件关联字段扩展属性4 */
    @Excel(name = "预留机身零部件关联字段扩展属性4")
    private String reservedAttributes4;

    /** 预留机身零部件关联字段扩展属性5 */
    @Excel(name = "预留机身零部件关联字段扩展属性5")
    private String reservedAttributes5;

    /** 预留机身零部件关联字段扩展属性6 */
    @Excel(name = "预留机身零部件关联字段扩展属性6")
    private String reservedAttributes6;

    /** 预留机身零部件关联字段扩展属性7 */
    @Excel(name = "预留机身零部件关联字段扩展属性7")
    private String reservedAttributes7;

    /** 预留机身零部件关联字段扩展属性8 */
    @Excel(name = "预留机身零部件关联字段扩展属性8")
    private String reservedAttributes8;

    /** 预留机身零部件关联字段扩展属性9 */
    @Excel(name = "预留机身零部件关联字段扩展属性9")
    private String reservedAttributes9;

    /** 预留机身零部件关联字段扩展属性10 */
    @Excel(name = "预留机身零部件关联字段扩展属性10")
    private String reservedAttributes10;

    /** 录入厂商 */
    @Excel(name = "录入厂商")
    private String merchantBusinessLicenseNo;

    /** 用户id */
    @Excel(name = "用户id")
    private String userId;

    /**  录入时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = " 录入时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 产品状态 */
    @Excel(name = "产品状态")
    private String productStatus;

    /** 品牌 */
    @Excel(name = "品牌")
    private String uavBrand;

    /** 型号 */
    @Excel(name = "型号")
    private String uavModel;

    /** 价位 */
    @Excel(name = "价格")
    private Long uavPrice;

    /** 上市时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上市时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date uavReleaseDate;

    /** 机身材质 */
    @Excel(name = "机身材质")
    private String uavAirframeMaterial;

    /** 机身颜色 */
    @Excel(name = "机身颜色")
    private String uavColor;

    /** 应用场景 */
    @Excel(name = "应用场景")
    private String uavTargetApplications;

    /** 类型（飞行平台构型、机械结构） */
    @Excel(name = "类型", readConverterExp = "飞=行平台构型、机械结构")
    private String uavClassificationByAirframeConfiguration;

    /** 分类（基于重量） */
    @Excel(name = "分类", readConverterExp = "基=于重量")
    private String uavClassificationByWeight;

    /** 空机重量 */
    @Excel(name = "空机重量")
    private Long uavEmptyWeight;

    /** 最大起飞重量 */
    @Excel(name = "最大起飞重量")
    private Long uavMaximumTakeOffWeight;

    /** 折叠尺寸-长 */
    @Excel(name = "折叠尺寸-长")
    private Long uavFoldedSizeLong;

    /** 折叠尺寸-宽 */
    @Excel(name = "折叠尺寸-宽")
    private Long uavFoldedSizeWidth;

    /** 折叠尺寸-高 */
    private Long uavFoldedSizeHeight;

    /** 展开尺寸-长 */
    @Excel(name = "展开尺寸-长")
    private Long uavUnfoldSizeLong;

    /** 展开尺寸-宽 */
    @Excel(name = "展开尺寸-宽")
    private Long uavUnfoldSizeWidth;

    /** 展开尺寸-高 */
    @Excel(name = "展开尺寸-高")
    private Long uavUnfoldSizeHeight;

    /** 最大轴距 */
    @Excel(name = "最大轴距")
    private Long uavMaximumDiagonalDistance;

    /** 最大上升速度 */
    @Excel(name = "最大上升速度")
    private Long uavMaximumAscentRate;

    /** 最大下降速度 */
    @Excel(name = "最大下降速度")
    private Long uavMaximumDescentRate;

    /** 无风最大水平速度 */
    @Excel(name = "无风最大水平速度")
    private Long uavMaximumStillAirHorizontalSpeed;

    /** 顺风最大水平速度 */
    @Excel(name = "顺风最大水平速度")
    private Long uavMaximumDownwindHorizontalSpeed;

    /** 最大起飞海拔高度 */
    @Excel(name = "最大起飞海拔高度")
    private Long uavMaximumTakeoffAltitudeAboveMeanSeaLevel;

    /** 最长飞行时间 */
    @Excel(name = "最长飞行时间")
    private Long uavMaximumFlightTime;

    /** 最长悬停时间 */
    @Excel(name = "最长悬停时间")
    private Long uavMaximumHoverTime;

    /** 最大续航里程 */
    @Excel(name = "最大续航里程")
    private Long uavMaximumRange;

    /** 最大抗风速度 */
    @Excel(name = "最大抗风速度")
    private Long uavMaximumWindSpeedResistance;

    /** 最大可倾斜角度 */
    @Excel(name = "最大可倾斜角度")
    private BigDecimal uavMaximumTiltAngle;

    /** 工作环境温度 */
    @Excel(name = "工作环境温度")
    private Long uavOperatingTemperature;

    /** 整机防护等级 */
    @Excel(name = "整机防护等级")
    private String uavIpRating;

    /** 卫星导航系统 */
    @Excel(name = "卫星导航系统")
    private String uavSatelliteNavigationSystem;

    /** 垂直悬停精度（视觉） */
    @Excel(name = "垂直悬停精度", readConverterExp = "视=觉")
    private BigDecimal uavVerticalHoverAccuracyVision;

    /** 垂直悬停精度（卫星） */
    @Excel(name = "垂直悬停精度", readConverterExp = "卫=星")
    private BigDecimal uavVerticalHoverAccuracyGnss;

    /** 水平悬停精度（视觉） */
    @Excel(name = "水平悬停精度", readConverterExp = "视=觉")
    private BigDecimal uavHorizontalHoverAccuracyVision;

    /** 水平悬停精度（卫星） */
    @Excel(name = "水平悬停精度", readConverterExp = "卫=星")
    private BigDecimal uavHorizontalHoverAccuracyGnss;

    /** RTK 定位精度 */
    @Excel(name = "RTK 定位精度")
    private String uavRtkPositioningAccuracy;

    /** 机载内存 */
    @Excel(name = "机载内存")
    private Long uavInternalStorage;

    /** 分类（基于风险的操作规则，以欧盟为例） */
    @Excel(name = "分类", readConverterExp = "基=于风险的操作规则，以欧盟为例")
    private String uavClassificationEuRiskBased;

    /** 图片保存路径 */
    @Excel(name = "图片保存路径")
    private String uavImagePath;

    /** 保存草稿 */
    @Excel(name = "保存草稿")
    private String saveDraft;

    /** 文件上传 */
    @Excel(name = "文件上传")
    private Map fileData;
}
